home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Internet Tools 1993 July / Internet Tools.iso / RockRidge / ip / dialupip / dialupip2.0 / src / dulib / recordpid.c < prev    next >
Encoding:
C/C++ Source or Header  |  1991-01-11  |  1.7 KB  |  59 lines

  1. /*
  2. **  Record the PID of the process using a particular device.
  3. **  Copyright (c) 1991 Bolt Beranek and Newman, Inc.
  4. **  All rights reserved.
  5. **
  6. **  Redistribution and use in source and binary forms are permitted
  7. **  provided that: (1) source distributions retain this entire copyright
  8. **  notice and comment, and (2) distributions including binaries display
  9. **  the following acknowledgement:  ``This product includes software
  10. **  developed by Bolt Beranek and Newman, Inc. and CREN/CSNET'' in the
  11. **  documentation or other materials provided with the distribution and in
  12. **  all advertising materials mentioning features or use of this software.
  13. **  Neither the name of Bolt Beranek and Newman nor CREN/CSNET may be used
  14. **  to endorse or promote products derived from this software without
  15. **  specific prior written permission.
  16. **
  17. **  THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
  18. **  WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
  19. **  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  20. */
  21. #include <stdio.h>
  22. #include "dialupip.h"
  23.  
  24.  
  25. static char    lockfile[sizeof PID_FILE + 20];
  26.  
  27.  
  28. int
  29. record_pid(what)
  30.     char    *what;
  31. {
  32.     extern char    *strcat();
  33.     extern char    *strcpy();
  34.     FILE    *fp;
  35.  
  36.     /* Open the file. */
  37.     (void)sprintf(lockfile, PID_FILE, what);
  38.     if ((fp = fopen(lockfile, "w")) == NULL) {
  39.     d_log(DLOG_GENERAL, progname, "Can't write PID in \"%s\", %m",
  40.         lockfile);
  41.     lockfile[0] = '\0';
  42.     return -1;
  43.     }
  44.  
  45.     /* Write the PID out and close the file */
  46.     (void)fprintf(fp, "%d\n", getpid()); 
  47.     (void)fclose(fp);  
  48.     return 0;
  49. }
  50.  
  51.  
  52. unlock_pid()
  53. {
  54.     if (lockfile[0]) {
  55.     (void)unlink(lockfile);
  56.     lockfile[0] = '\0';
  57.     }
  58. }
  59.